<?php
/**
 * 親善チームコンポーネント
 */
require_once dirname(__FILE__) . '/../Components.php';
require_once dirname(__FILE__) . '/Mapper.php';
require_once 'Request/Request.php';

class Components_TeamFriend_Controller extends Components
{
	/** テンプレートファイル名 */
	const TEMPLATE_NAME_EDIT = 'edit.tpl';
	/** 変更ボタン名 */
	const NAME_BUTTON_UPDATE = 'submit';
	/** 変更BUTTONバリュー */
	const VALUE_BUTTON_UPDATE='変更';
	/** 削除ボタン名 */
	const NAME_BUTTON_DELETE = 'submit';
	/** 削除ボタンバリュー */
	const VALUE_BUTTON_DELETE = '削除';
	/** 追加ボタン名 */
	const NAME_BUTTON_ADD = 'submit';
	/** 追加ボタンバリュー */
	const VALUE_BUTTON_ADD = '追加';

	/** @var $_Request HTTPリクエスト */
	protected $_objRequest;
	/** @var $_objMapper 親善チームデータマッパ */
	protected $_objMapper;
	/** @var $_sFromAction ボタン投入時の遷移先 */
	protected $_sFormAction;
	/** @var エラーコード */
	public $ERRCODE;

	/**
	 * コンストラクタ
	 * Enter description here ...
	 * @param unknown_type $sCompileId
	 * @param string $sFormAction 実行ボタン投入時の遷移先
	 */
	public function __construct($sCompileId, $sFormAction)
	{
		parent::__construct(dirname(__FILE__), $sCompileId);
		$this->_objMapper = new Components_TeamFriend_Mapper();
		$this->_objMapper->loadFromFile();
		$this->_sFormAction = $sFormAction;

		$this->_objRequest = new Lib_Request();
		/***
		 * ボタン投入状態による処理
		 */
		$this->ERRCODE = 0;
		switch ( $this->_objRequest->get('submit')) {
			case '追加' :
				$bResult = $this->_objMapper->add();
				break;
			case '削除':
				$bResult = $this->_objMapper->delelte();
				break;
			case '変更':
				$bResult = $this->_objMapper->update();
				break;
			default:
				return;
		}
		if ( $bResult === FALSE ) {
			$this->ERRCODE = 1;
		} else {
			$this->_objMapper->saveToFile();
		}
	}

	/**
	 * フェッチ
	 * (non-PHPdoc)
	 * @see Smarty_Components::fetch()
	 */
	public function fetch()
	{
		$this->view->aryDataset = $this->_objMapper->getAll();
		$this->view->FORM_ACTION = $this->_sFormAction;
		$sHtml=parent::fetch(self::TEMPLATE_NAME_EDIT);
		return $sHtml;
	}
}
